home *** CD-ROM | disk | FTP | other *** search
- Quelques bonnes trucs et astuces que j'ai rassemblé:
-
-
- EDITION
-
-
- Les situations très courantes:
- $ mkdir documents
- $ cd documents
- peut être abrégée par:
- $ mk documents
- $ [CTRL-T] (insère tout sauf le premier mot de la ligne
-
-
- Aussi très courant:
- $ mv document document1
- $mv [CTRL-P]1
- La fonction CTRL-P duplique le mot précédent sur la ligne de commande
-
-
- Vous pourriez vous être demandé en quoi CTRL-N (laisse la ligne courante)
- peut vous être utile.
- Supposons, par exemple, que vous avez tapé
- $ rm dh1:graphics/lo-res/gorilla
- quand il vous vient à l'esprit que vous préfereriez garder une copie de cette
- image sur disquette. Plusieurs effaceraient la ligne de commande. Comme vous
- avez de la classe, vous faîtes ce qui suit:
- $ [CTRL-N] (laisse la ligne de commande tranquile)
- $ co [CTRL-T] df0:
- $ [Flèche-Haute][Flèche-Haute] (reprend la lignede commande que vous aviez
- laissé)
-
-
- Au cas où vous ne sauriez pas ce qu'est la complétion sur l'historique:
- $ search *.c *.h makefile toto
- $ ram:
- $ dir
- $ rm tmpfile
- Maintenant si vous voulez répéter la commande search, entrez
- $ se[Shift-Flèche-Haute]
- ce qui rapelle la dernière commande commençant par 'se'.
-
-
- Si jamais vous cyclez trop loing en utilisant la touche TAB, en dépassant
- l'entrée que vous vouliez, vous pouvez revenir en arrière d'une entrée en
- utilisant CTRL-U [undo]. La même chose s'applique si vous aviez entré une
- abréviation, pressé TAB mais vu que l'abbréviation était trop courte.
-
-
- Si vous voulez effacer le fichier
- $ rm dh2:comm/uucp/mail/junk/409
- et que vous êtes loin de ce répertoire, entrez
- $ rm ju[ESC-c]409 (entre le chemin correspondant à cd ju)
-
-
- La même fonction est aussi utilisable pour 'cd'. Supposons que vous avez
- plusieurs répertoires 'junk':
- $ ju[ESC-c][CTRL-R][CTRL-R][CTRL-R]
- Comme ceci vous cyclerez à travers les répertoires junk. Quand vous aurez le
- bon, appuyez sur enter.
-
-
- Supposons qu'il y a les fichiers comm1.c, comm2.c, et comm3.c avec leurs
- fichiers .o correspondants. Vous voulez comm3.c:
- $ co[Shift-Tab]1[Tab]
- Bien sûr ceci est plus utile surdes noms de fichiers plus longs.
-
-
- Vous pouvez compléter un nom de fichier par tab sur n'importe quel motif,
- pas seulement les abréviations. Supposons que vous voulez effacer tous les
- fichiers .c dans le répertoire courant sauf le dernier:
- $ rm *.c[ESC-Tab][CTRL-W]
- De plus, vous pouvez voir tous les fichiers encore une fois avant de les
- effacer.
-
-
- Ensuite: Vous avez entré:
- $ dir
- $ foreach i ( *.c ) "e >>ram:temp $i
- et vous voudriez effectuer les mêmes trois actions à nouveau, entrez:
- $ [Flèche-Haute][Flèche-Haute][Flèche-Haute][ESC-Return][CTRL-R][CTRL-R]
-
-
- Je sais que l'édition n'est pas très conviviale. C'est parce qu'il est assez
- difficile et dangereux de prendre des codes raw sur la console, et il est
- impossible de prendre ces codes depuis un terminal VT200. Ainsi j'ai me
- débrouiller avec des combinaisons de CTRL et ESC. Une fois que vous les avez
- appris (certains d'entre eux sont similaire à EMACS), vous économisez
- beaucoup de frappe.
-
-
- COMMANDES
-
-
- Mon conseil ici est très clair: Utilisez les alias, les alias, les alias.
- Pour être capable de les créer aussi vite que possible, créez un alias (par
- ex. 'le') qui édite votre fichier de login, plus un autre (par ex. 'lx'),
- qui le réexécute. Mon login ne contient quasiment que des alias, tout le
- reste, je l'ai mis dans 'firstlogin.sh'.
-
-
- Si vous n'aimez pas mes options par défaut pour une commande, vous pouvez
- en ajouter en utilisant un alias:
- $ alias dir "dir -q
- A partir de là, les blocs ne seront plus affichés dans 'dir'.
-
-
- Si vous alias ont des arguments, par ex.:
- $ alias sc "search *.c
- des problèmes surgissent lorsque vous essayez de spécifier des options, par
- exemple la sensibilité aux majuscules:
- $ sc -c "bonjour tout le monde
- Ceci ne marchera evidemment pas. C'est ce que résoud @pickopts:
- $ alias sc "%a serach @pickopts( $a ) *.c @pickargs( $a )
-
-
- Une fois que vous avez des alias, il est utile de les garder triés. Vous
- pourriez aussi les documenter: créez un fichier 'alias.doc', et faites
- $ set _man alias.doc csh.doc
- De cette façon vous pouvez les documenter dans un fichier séparé.
-
- Si vous vouliez créer des alias qui acceptent des arguments, vous pouvez
- les implémenter en utilisant 'if -o'.
- $ alias bon "%a if -o v $a;echo -n "tres ";endif;echo bon boulot, @arg( $a )
- $ bon olivier --> bon boulot, olivier
- $ bon -v olivier --> tres bon boulot, olivier
-
- 'cat' peut être utilisé pour créer de petits fichiers de texte:
- $ cat >monfichier
- bonjour
- [CTRL-\]
- La combinaison de touches CTRL-\ crée un caractère de fin de fichier
-
-
- FONCTIONS
-
- @age est très utile pour archiver les scripts:
- $ foreach i ( * ) "if @age( $i ) > 30;cp -m $i backup:;endif
-
-
- @clinum peut être utilisé pour rendre 'break' et 'pri' plus flexibles:
- $ alias break "%a break @clinum( $a )
- Maintenant vous pouvez faire, par exemple, 'break cc'. Les numéros de Cli
- sont toujours autorisés.
-
- @complete simule l'effet de la complétion des noms de fichiers par TAB. De
- cette façon, vous n'avez plus besoin de presser TAB pour cela:
- $ alias edit "%a ced @complete( $a * )
-
-
- @confirm peut être uitilisé pour un 'rm' sûr:
- $ alias rm "%a rm @confirm( $a )
-
-
- @howmany est utile au lancement:
- $ if $howmany = 1;window -l;endif
-
-
- @intersect, @union et @without conviennent bien à de nombreuses applications
- Si vous stockez, par exemple, tous les fichiers d'un de vos amis, dans la
- variable $him, (il peut faire un 'dir -np .../ >temp', vous faites alors un
- 'readf him <temp'), et vos fichiers dans $me, alors vous pouvez savoir ce
- qu'il a et pas vous en utilisant
- $ echo @without( $him , $me )
- Pour ignorer des noms de chemins différents, utilisez
- $ set him @basename( $ him )
- Si vous avez les noms de fichiers sans les chemins, vous pouvez retrouver le
- chemin en 'search'ant le fichier temp.
-
-
- @opt et @arg sont utilisés chaque fois que vous avez qui spécifie déjà des
- arguments, mais autorise l'utilisateur à spécifier des options additionelles.
- $ alias sc "%a search @opt( $a ) *.c @arg( $a )
-
-
- @volume peut être utilisé pour tester si il y a un disque dans un certain
- lecteur. Il supprimera les requesters et retourne une chaîne vide s'il n'y
- a pas de disque.
-
-
- VARIABLES
-
-
- $_except peut être rendue locale. Dans ce cas vous avez un traitement
- d'erreur spécial pour l'alias ou le fichier script courant.
-
-
- $_man peut contenir les noms de plus d'un fichier .doc. De cette façon, vous
- pourriez ajouter de la documentation pour vos propres alias.
-
-
- Lorsque vous travaillez avec des gros fichiers et les pipes, vous pourriez
- souhaiter mettre $_pipe vers un répertoire sur votre disque dur.
-
-
- INTERPRETEUR
-
-
- Si vous avez besoin d'ajouter une chaîne à une variable, vous pouvez le faire
- de cette façon:
- $ set toto truc
- $ echo $foo""bidule --> trucbidule
- Le "" n'est pas nécessaire si le premier caractère de la chaîne à être ajoutée
- n'est ni une lettre ni un chiffre ni un _.
-
- Pour être sûr qu'aucune commande interne n'est exécutée, mettez la première
- lettre de votre commande en majuscule:
- $ Dir ram: ALL
-
- Pour ne pas tenir compte des alias existants sur une commande, entrez:
- $ alias echo "xxxxxx
- $ \echo bonjour --> bonjour